#ifndef __FM1906_h_
#define __FM1906_h_


#define LCD_COM     0x80     //命令模式
#define LCD_WRITE   0xA0    //写数据模式
#define LCD_READ    0xC0    //读取模式


#define     SYSDIS          0x800   //0B 1000 0000 000X  关振荡器和LCD偏压发生器
#define     SYSEN           0x802   //0B 1000 0000 001X  打开系统振荡器
#define     LCDOFF          0x804   //0B 1000 0000 010X  关LCD偏压
#define     LCDON           0x806   //0B 1000 0000 011X  开LCD偏压
#define     TIMERDIS        0x808   //0B 1000 0000 100X  时基输出失效
#define     WDTDIS          0x80A   //0B 1000 0000 101X  WDT溢出标志输出失效
#define     TIMEREN         0x80C   //0B 1000 0000 110X  时基输出使能
#define     WDTEN           0x80E   //0B 1000 0000 111X  WDT溢出标志输出有效
#define     TONEOFF         0x810   //0B 1000 0001 000X  关闭声音输出
#define     TONEON          0x812   //0B 1000 0001 001X  打开声音输出
#define     CLRTIMER        0x818   //0B 1000 0001 100X  时基发生器清零
#define     CLRWDT          0x81C   //0B 1000 0001 110X  清除WDT状态
#define     XTAL_32K        0x828   //0B 1000 0010 100X  系统时钟源，晶振
#define     RC_256K         0x830   //0B 1000 0011 000X  系统时钟源，片内RC
#define     EXT_256K        0x838   //0B 1000 0011 100X  系统时钟源，外部时钟源


#define     BIAS1_2_2COM    0x840   //0B 1000 0100 000X     LCD 1/2偏压选项，2个公共口
#define     BIAS1_2_3COM    0x848   //0B 1000 0100 100X     LCD 1/2偏压选项，3个公共口
#define     BIAS1_2_4COM    0x850   //0B 1000 0101 000X     LCD 1/2偏压选项，4个公共口

#define     BIAS1_3_2COM    0x842   //0B 1000 0100 001X     LCD 1/3偏压选项，2个公共口
#define     BIAS1_3_3COM    0x85A   //0B 1000 0100 101X     LCD 1/3偏压选项，3个公共口
#define     BIAS1_3_4COM    0x852   //0B 1000 0101 001X     LCD 1/3偏压选项，4个公共口

#define     TONE4K          0x880   //0B 1000 1000 000X  声音频率4K
#define     TONE2K          0x8C0   //0B 1000 1100 000X  声音频率2K
#define     IRQ_DIS         0x900   //0B 1001 0000 000X  使/IRQ输出失效
#define     IRQ_EN          0x910   //0B 1001 0001 000X  使/IRQ输出有效
#define     BIAS            0x852   //0b 1000 0101 0010  1/3duty 4com




#define LCD_CS_LOW()         PA12 = 0
#define LCD_WR_LOW()         PA13 = 0
#define LCD_DATA_LOW()       PA14 = 0


#define LCD_CS_HIGH()        PA12 = 1
#define LCD_WR_HIGH()        PA13 = 1
#define LCD_DATA_HIGH()      PA14 = 1


void FM1906_Init(void);
void FM1906_Write_Command(uint16_t cmd);
void FM1906_Write_Data(uint8_t data,uint8_t num);
void FM1906_Write_OneData (uint8_t addr, uint8_t data);
void FM1906_Write_Cmd (uint8_t cmd);
void FM1906B_Write_NumData (uint8_t addr, uint8_t * data,uint8_t num);

#endif
